package java_0206;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class YangHui {
    public List<List<Integer>> generate(int numRows){
        //最后的二维数组
        List<List<Integer>> ret=new ArrayList<>();
        //先写特殊的前两行：都是1
        List<Integer> first= Arrays.asList(1);
        //Arrays.asList是一个可变参数列表
        //（）中放可变参数，里面有几个元素就放几个元素
        ret.add(first);
        if(numRows==1){
            return ret;
        }
        List<Integer> second=Arrays.asList(1,1);
        ret.add(second);
        if(numRows==2){
            return ret;
        }
        //此时行数至少三行
        for (int i = 3; i <= numRows; i++) {
            List<Integer> prev=ret.get(i-1-1);//取i-1行元素，索引为i-1-1
            List<Integer> cur=new ArrayList<>();//当前行
            cur.add(1);//每行第一列都是1
            //2到i-1列
            for (int j = 2; j <i ; j++) {//不取等，最后一列也都是1，手动添加
                int val=prev.get(j-1-1)+prev.get(j-1);
                cur.add(val);
            }
            cur.add(1);//每行最后一个元素也是1
            ret.add(cur);//每行循环完加入二维数组ret中
        }
        return ret;
    }
}
